
package com.jf.cloud.live.mapper;

import cn.binarywang.wx.miniapp.bean.live.WxMaLiveResult;
import com.jf.cloud.live.dto.LiveRoomDTO;
import com.jf.cloud.live.model.LiveRoom;
import com.jf.cloud.live.vo.LiveRoomVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 直播间
 *
 * @author zz
 * @date 2022-08-17 17:09:06
 */
public interface LiveRoomMapper {

    /**
     * 获取直播间列表
     * @return 直播间列表
     */
    List<LiveRoom> list(@Param("liveRoomDTO") LiveRoom liveRoom);

    /**
     * 根据直播间id获取直播间
     *
     * @param id 直播间id
     * @return 直播间
     */
    LiveRoom getById(@Param("id") Long id);

    /**
     * 保存直播间
     * @param liveRoom 直播间
     */
    void save(@Param("liveRoom") LiveRoom liveRoom);

    /**
     * 更新直播间
     * @param liveRoom 直播间
     */
    void update(@Param("liveRoom") LiveRoom liveRoom);

    /**
     * 根据直播间id删除直播间
     * @param id
     */
    void deleteById(@Param("id") Long id);

    /**
     * 获取置顶的直播间个数
     * @return
     */
    int countTopRoom();

    /**
     * 获取直播间详细信息
     * @param liveRoom 直播间信息
     * @return 直播间信息
     */
    List<LiveRoomVO> pageRoomAndDetail(@Param("liveRoom") LiveRoomDTO liveRoom);

    /**
     * 批量修改直播间信息
     * @param roomInfos 直播间信息
     */
    void updateBatchByRoomId(@Param("roomInfos")List<WxMaLiveResult.RoomInfo> roomInfos);
}
